--- /dev/null
+No,Latitude,Longitude,Name,Date,Time
+1,33.784801,-117.474350,"WPT001",2014/09/17,13:20:20.400
+2,33.784801,-117.474342,"WPT002",2014/09/17,13:20:20.600
+3,33.784801,-117.474342,"WPT003",2014/09/17,13:20:20.800
+4,33.784801,-117.474342,"WPT004",2014/09/17,13:20:21
+5,33.784801,-117.474342,"WPT005",2014/09/17,13:20:21.200
+6,33.784801,-117.474335,"WPT006",2014/09/17,13:20:21.400
+7,33.784801,-117.474335,"WPT007",2014/09/17,13:20:21.600
+8,33.784801,-117.474335,"WPT008",2014/09/17,13:20:21.800
+9,33.784805,-117.474327,"WPT009",2014/09/17,13:20:22
+10,33.784805,-117.474327,"WPT010",2014/09/17,13:20:22.200
+11,33.784805,-117.474327,"WPT011",2014/09/17,13:20:22.400
}
static time_t
-unicsv_parse_time(const char* str, int* msec, time_t* date)
+unicsv_parse_time(const char* str, int* usec, time_t* date)
{
int hour, min, ct, sec;
int consumed = 0;
- double ms;
+ double us;
char sep[2];
time_t ldate;
*date = ldate;
}
}
- ct = sscanf(str, "%d%1[.://]%d%1[.://]%d%lf", &hour, sep, &min, sep, &sec, &ms);
+ ct = sscanf(str, "%d%1[.://]%d%1[.://]%d%lf", &hour, sep, &min, sep, &sec, &us);
is_fatal(ct < 5, MYNAME ": Could not parse time string (%s).\n", str);
if (ct == 6) {
- *msec = lround((ms * 1000000));
- if (*msec > 999999) {
- *msec = 0;
+ *usec = lround((us * 1000000));
+ if (*usec > 999999) {
+ *usec = 0;
sec++;
}
} else {
- *msec = 0;
+ *usec = 0;
}
return ((hour * SECONDS_PER_HOUR) + (min * 60) + (int)sec);
return unicsv_compare_fields(CSTR(s), f);
}
-
static void
unicsv_fondle_header(QString s)
{
int checked = 0;
time_t date = -1;
time_t time = -1;
- int msec = -1;
+ int usec = -1;
char is_localtime = 0;
garmin_fs_t* gmsd;
double d;
case fld_utc_time:
if ((is_localtime < 2) && (time < 0)) {
- time = unicsv_parse_time(CSTR(s), &msec, &date);
+ time = unicsv_parse_time(s, &usec, &date);
is_localtime = 0;
}
break;
case fld_time:
if ((is_localtime < 2) && (time < 0)) {
- time = unicsv_parse_time(CSTR(s), &msec, &date);
+ time = unicsv_parse_time(s, &usec, &date);
is_localtime = 1;
}
break;
case fld_datetime:
if ((is_localtime < 2) && (date < 0) && (time < 0)) {
- time = unicsv_parse_time(CSTR(s), &msec, &date);
+ time = unicsv_parse_time(s, &usec, &date);
is_localtime = 1;
}
break;
break;
case fld_gc_exported: {
time_t time, date;
- int msec;
- time = unicsv_parse_time(s, &msec, &date);
+ int usec;
+ time = unicsv_parse_time(s, &usec, &date);
if (date || time) {
gc_data->exported = unicsv_adjust_time(time, &date);
}
break;
case fld_gc_last_found: {
time_t time, date;
- int msec;
- time = unicsv_parse_time(s, &msec, &date);
+ int usec;
+ time = unicsv_parse_time(s, &usec, &date);
if (date || time) {
gc_data->last_found = unicsv_adjust_time(time, &date);
}
}
}
- if (msec >= 0) {
- wpt->creation_time = wpt->creation_time.addMSecs(msec);
+ if (usec >= 0) {
+ wpt->creation_time = wpt->creation_time.addMSecs(MICRO_TO_MILLI(usec));
}
if (opt_utc) {